home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 8 / FM Towns Free Software Collection 8.iso / t_os / gpen32k / source / src / gpen.c next >
Encoding:
C/C++ Source or Header  |  1994-06-01  |  2.3 KB  |  125 lines

  1.  
  2. /*    GPenシリーズ完全互換関数    */
  3.  
  4. #include    <io.h>
  5. #include    <stdlib.h>
  6. #include    <math.h>
  7. #include    <EGB.H>
  8. #include    <MOS.H>
  9. #include    <kkstr2.h>
  10. #include    <NORMLIB.H>
  11. #include    <okome.h>
  12. #include    <gpen.h>
  13. /*    GpenSub.h include禁止    */
  14.  
  15. void bsz( int *l, int *b )
  16. {
  17.     int i;
  18.     if ( *l > *b ) {
  19.         i = *b;
  20.         *b = *l;
  21.         *l = i;
  22.     }
  23. }
  24.  
  25. void uboxf( int x1, int y1, int x2, int y2, int c1, int c2, int c3 )
  26. {
  27.     boxf( x1, y1, x2, y2, c3 );
  28.     ubox( x1, y1, x2, y2, c1, c2 );
  29. }
  30.  
  31. void end( void )        /*    終わりのまとまり    */
  32. {
  33.     free(vp0);
  34.     KAN_disp(KAN_DISPOFF);
  35.     wpg( 1 );
  36.     EGB_clearScreen( work );
  37.     wpg( 0 );
  38.     EGB_clearScreen( work );
  39.     KAN_finish();
  40.     MOS_end();
  41.     exit(0);
  42. }
  43.  
  44. void udten(int x1, int y1, int x2, int y2)
  45. {
  46.     int y, l;
  47.     char v[1024], w[1024];
  48.     bsz( &x1, &x2 );
  49.     bsz( &y1, &y2 );
  50.     for (y=0; y<y2-y1; y+=2) {
  51.         l=y;
  52.         if ((y2-y1) % 2==0 && y*2>=(y2-y1))
  53.             l+=1;
  54.         egbget(x1, y1+l, x2, y1+l, v);
  55.         egbget(x1, y2-l, x2, y2-l, w);
  56.         egbput(x1, y1+l, x2, y1+l, w);
  57.         egbput(x1, y2-l, x2, y2-l, v);
  58.     }
  59. }
  60.  
  61. void lrten(int x1, int y1, int x2, int y2)
  62. {
  63.     int x,l;
  64.     char v[1024], w[1024];
  65.     bsz( &x1, &x2 );
  66.     bsz( &y1, &y2 );
  67.     for (x=0; x<x2-x1; x+=2) {
  68.         l=x;
  69.         if ((x2-x1) % 2==0 && x*2>=(x2-x1))
  70.             l+=1;
  71.         egbget(x1+l, y1, x1+l, y2, v);
  72.         egbget(x2-l, y1, x2-l, y2, w);
  73.         egbput(x1+l, y1, x1+l, y2, w);
  74.         egbput(x2-l, y1, x2-l, y2, v);
  75.     }
  76. }
  77.  
  78. void circlen2(int x1, int y1, int x2, int y2, int c )
  79. {
  80.     circle( x1,y1, sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)), 0x2, c );
  81. }
  82.  
  83. void circlef2(int x1, int y1, int x2, int y2, int c )
  84. {
  85.     circle( x1,y1, sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)), 0x22, c );
  86. }
  87.  
  88. void circlenl(int x1, int y1, int x2, int y2, int c )
  89. {
  90.     circlel( x1,y1, x2-x1,y2-y1, 0x2, c );
  91. }
  92.  
  93. void circlefl(int x1, int y1, int x2, int y2, int c )
  94. {
  95.     circlel( x1,y1, x2-x1,y2-y1, 0x22, c );
  96. }
  97.  
  98. void mspoit( void )
  99. {
  100.     int mb, mx, my;
  101.     MOS_disp( 0 );
  102.     MOS_typeRom2( 86, 1, 1, mpat );
  103.     MOS_disp( 1 );
  104.     mbout( &mb, &mx, &my );
  105.     mbin( &mb, &mx, &my );
  106.     MOS_disp( 0 );
  107.     MOS_typeRom2( 81, 1, 1, mpat );
  108.     MOS_disp( 1 );
  109.     tclc(mb, mx, my);
  110.     mbout( &mb, &mx, &my );
  111. }
  112.  
  113. void mcolm2( int mb )
  114. {
  115.     mcl[mb] = mcl[0];
  116.     mbclp();
  117. }
  118.  
  119. int sachk(char *nn)
  120. {
  121.     if (_access(nn,0)==0)
  122.         return (message2(1, "上書きしますか?", 2));
  123.     return (0);
  124. }
  125.